﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using BusinessLogic;
using System.Data;
using System.IO;


namespace Interface.Rooms
{
    public partial class EditRoom : System.Web.UI.Page
    {
        string stringID;
        DataConnection dc = new DataConnection();
        DataValid dv = new DataValid();
        string _curimage = null;
        
        protected void Page_Load(object sender, EventArgs e)
        {
            if (Page.IsPostBack == false)
            {
                getQueryString();
            }
        }

        public void getQueryString()
        {
            if (Request.QueryString["ID"] != null)
            {
                stringID = Request.QueryString["ID"].ToString();
                BindDataRoom(stringID);
            }
        }

        protected void BindDataRoom(string ID)
        {
            hdfIDRoom.Value = ID;
            loadRoomDetail(ID);
        }

        protected void loadRoomDetail(string ID)
        {
            string sqlStr = "Select * from Rooms where RoomID='" + ID + "'";
            DataTable dt = dc.getData(sqlStr);
            if (dt.Rows.Count > 0)
            {
                DataRow row = dt.Rows[0];

                hdfIDHouse.Value = Convert.ToString(row["HouseID"]);


                string _name = row["Name"].ToString();
                txtName.Text = _name;

                string _descript = row["Descript"].ToString();
                txtDescript.Text = _descript;

                int _available = Convert.ToInt32(row["Available"]);
                ddlAvailable.Text = "Còn";
                if (_available == 0)
                {
                    ddlAvailable.Text = "Hết";
                }

                _curimage = Convert.ToString(row["ImageSource"]);

                string _area = Convert.ToString(row["Area"]);
                txtArea.Text = _area;

                string _price = Convert.ToString(row["Price"]);
                txtPrice.Text = _price;

                string _maxperson = Convert.ToString(row["MaxPerson"]);
                txtMaxPerson.Text = _maxperson;

                string _curperson = Convert.ToString(row["CurPerson"]);
                txtCurPerson.Text = _curperson;

                int _internet = Convert.ToInt32(row["Internet"]);
                ddlInternet.Text = "Có";
                if (_internet == 0)
                {
                    ddlInternet.Text = "Không";
                }

            }
        }

        protected void imbCancel_Click(object sender, ImageClickEventArgs e)
        {
            Response.Redirect("RoomList.aspx?ID=" + hdfIDHouse.Value);
        }

        protected void imbUpdateRoom_Click(object sender, ImageClickEventArgs e)
        {


            if (txtName.Text == string.Empty)
            {
                lblMs.Text = "Bạn phải điền tên phòng";
                return;
            }
            


            if (txtDescript.Text == string.Empty)
            {
                lblMs.Text = "Bạn phải nhập vào giới thiệu cho phòng trọ ";
                return;
            }

            string _name = txtName.Text;
            string _description = txtDescript.Text;

            int _available = 0;
            if (ddlAvailable.Text == "Còn")
            {
                _available = 1;
            }

            int _area = 0;
            bool _checkarea = dv.isInt(txtArea.Text);
            if (_checkarea == false)
            {
                lblMs.Text = "Diện tích phải là số";
                return;
            }
            else
            {
                 _area = Convert.ToInt32(txtArea.Text);
                if (_area < 0)
                {
                    lblMs.Text = "Diện tích phải là số dương";
                    return;
                }
 
            }

            int _price = 0;
            bool _checkprice = dv.isInt(txtPrice.Text);
            if (_checkprice == false)
            {
                lblMs.Text = "Giá phòng phải là số";
            }
            else
            {
                 _price = Convert.ToInt32(txtPrice.Text);
                if (_price < 0)
                {
                    lblMs.Text = "Giá phòng phải là số dương";
                    return;
 
                }
            }

            int _maxper = 0;
            bool _checkmaxper = dv.isInt(txtMaxPerson.Text);
            if (_checkmaxper == false)
            {
                lblMs.Text = "Số người có thể ở phải là số";
                return;
            }
            else
            {
                _maxper = Convert.ToInt32(txtMaxPerson.Text);
                if (_maxper < 0)
                {
                    lblMs.Text = "Số người có thể ở phải là số dương";
                    return;
 
                }
            }

            int _curper =0;
            bool _checkcurper = dv.isInt(txtCurPerson.Text);
            if (_checkcurper == false)
            {
                lblMs.Text = "Số người trong phòng phải là số";
                return;
            }
            else
            {
                _curper =  Convert.ToInt32(txtCurPerson.Text);
                if (_curper < 0)
                {
                    lblMs.Text = "Số người trong phòng phải là số dương";
                    return;
 
                }
            }


            if ((_maxper - _curper) < 0)
            {
                lblMs.Text = "Số người hiện đang trọ phải nhỏ hơn số người cho phép!";
            }

            int _internet = 0;
            if (ddlInternet.Text == "có")
            {
                _internet = 1;
            }

            HttpPostedFile postfile = fuPost.PostedFile;
            string fileEx = Path.GetExtension(postfile.FileName);
            string filename = Path.GetFileName(postfile.FileName);
            string sqlUpdate = "";

            if (filename != string.Empty)
            {
                if (fileEx == ".jpg" || fileEx == ".gif" || fileEx == ".png" || fileEx == ".bmp")
                {
                    postfile.SaveAs(Server.MapPath("~/Images/Room/" + filename));
                    sqlUpdate = "Update Rooms set Name=N'" + _name + "', Descript=N'" + _description + "', Available= N'" + _available + "', Area= '" + _area + "', Price='" + _price + "', MaxPerson=N'" + _maxper + "', CurPerson='" + _curimage + "', Internet='" + _internet + "',ImageSource ='" + filename + "'  where RoomID='" + hdfIDRoom.Value + "'";

                }             
            }
            else
            {
                sqlUpdate = "Update Rooms set Name=N'" + _name + "', Descript=N'" + _description + "', Available= N'" + _available + "', Area= '" + _area + "', Price='" + _price + "', MaxPerson=N'" + _maxper + "', CurPerson='" + _curper + "', Internet='" + _internet + "',ImageSource ='" + _curimage + "'  where RoomID='" + hdfIDRoom.Value + "'";
            }

            dc.ExecNonQuery(sqlUpdate);

            Response.Redirect("RoomDetails.aspx?ID=" + hdfIDRoom.Value);



        }
    }
}